home *** CD-ROM | disk | FTP | other *** search
- Function ModemRinging(Port : Word) : Boolean; { through the BIOS }
- Var
- Dummy : Byte;
- begin
- Asm
- dec port
- mov ah,03h
- mov dx,port
- int 14h
- mov dummy,al
- end;
- ModemRinging := (Dummy and RI) = RI { ring indicated }
- end;
-
- or
-
- Function ModemRinging(Port : Byte) : Boolean; { direct port access }
- Const
- RI = $40;
- begin
- Case Port of
- 1 : ModemRinging := ($3FE and RI) = RI; { com 1 }
- 2 : ModemRinging := ($2FE and RI) = RI { com 2 }
- end
- end;
-
- Function PhoneRinging(ComPort: Integer): Boolean;
- begin
- Case ComPort Of
- 1: PhoneRinging := (Port[$3FE] And 64) = 64;
- 2: PhoneRinging := (Port[$2FE] And 64) = 64;
- 3: PhoneRinging := (Port[$3EE] And 64) = 64;
- 4: PhoneRinging := (Port[$2EE] And 64) = 64;
- Else
- PhoneRinging := False;
- end;
- end;
-
- Function returns True if phone is ringing. Hope it helps.
-
- {
- > Function returns True if phone is ringing. Hope it helps.
-
- Just nitpicking but...
-
- PhoneRinging:=(Port[$3FE] and 64)<>0
-
- is more efficient, as is
-
- PhoneRinging:=Boolean(Port[$3FE] and 64)
- }